package sistema.contexto.avaliacao;

import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

/**
 * Classe que contem todas as avaliacoes. Sejam elas ativas ou n�o.
 * @author vinicius
 * @author Thiago Emmanuel Pereira da Cunha Silva, thiago.manel@gmail.com
 * @author Joao Arthur Brunet Monteiro, joaoarthurbm@gmail.com
 *
 */
public class AvaliacaoManager {

	Map<String, Avaliacao> avaliacoes;
	
	/**
	 * Construtor
	 *
	 */
	public AvaliacaoManager() {
		avaliacoes = new HashMap<String, Avaliacao>();
	}
	
	/**
	 * Adiciona uma nova Avaliacao a base
	 * @param idAvaliacao identificador da nova Avaliacao
	 * @param idTurma Identificador da Turma a qual ela � aplicada
 	 * @param dateInicio Data de inicio seu per�odo ativo
	 * @param dateFim Data final seu per�odo ativo
	 * @param descricao Descricao da Avalia��o
	 */
	public void adicionaAvaliacao(String idAvaliacao, String idTurma, Calendar dateInicio, Calendar dateFim, String descricao) {
		avaliacoes.put(idAvaliacao, new Avaliacao(idAvaliacao, idTurma, dateInicio, dateFim, descricao));
	}
	
	public boolean containsAvaliacao(String idAvaliacao) {
		return this.avaliacoes.containsKey(idAvaliacao);
	}

	public Collection<Avaliacao> getAvaliacoes() {
		return Collections.unmodifiableCollection(this.avaliacoes.values());
	}

}
